package com.mycode.prototype05.pm;

import java.util.Hashtable;

// 原型管理器（使用饿汉式单例实现）
public class PrototypeManager {

    // 定义一个 Hashtable，用于存储原型对象
    private Hashtable ht = new Hashtable();
    private static PrototypeManager prototypeManager = new PrototypeManager();

    // 为 Hashtable 增加公文对象
    private PrototypeManager() {
        ht.put("far", new FAR());
        ht.put("srs", new SRS());
    }

    // 增加新的公文对象
    public void addOfficialDocumet(String key, OfficialDocument doc) {
        ht.put(key, doc);
    }

    // 通过浅克隆获取新的公文对象
    public OfficialDocument getOfficialDocument(String key) {
        return ((OfficialDocument)ht.get(key)).clone();
    }

    public static PrototypeManager getPrototypeManager() {
        return prototypeManager;
    }
}
